Skip to main content

DBMS Migration Tool 사용 가이드

1. 개요

필독사항

해당 Tool은 JDK1.8 기준으로 개발되어 있으므로, JRE 1.8에서 구동해주시길 바랍니다.

※ CUBRID의 경우 서버에 설치되어 있는 CUBRID의 버전과 jdbc 버전이 동일해야 동작함.
따라서 버전에 맞는 jdbc 라이브러리를 DBMSMigrationTool_lib에 넣고 실행해야함.
※ 커스텀된 table 및 컬럼은 지원이 안되므로 별도로 수작업 해야 합니다.

쿼리를 수정하거나, 대상 DBMS에서 테이블 수정 및 컬럼 수정하세요.
※ 버전 차이나는 테이블에 대해서는 오류가 발생 할 수 있습니다. 따라서 수동 마이그레이션 진행이 필요합니다 (예.pcdevicelog_info)

※ DBMS 툴에서 메모리 부족으로 인해 최대 INSERT문 개수는 5만개로 제한합니다.

※ 테이블의 IDX가 자동 증가인 경우 원본 DBMS에서 해당 옵션이 있는 경우 자동으로 입력되어서 쿼리가 생성됩니다.

기존에 데이터가 있는 경우 중복이 될 수 있으므로, 내용 확인 바랍니다.

MSSQL
시작점에 SET IDENTITY_INSERT " + tableName + " ON;이 추가됩니다.
종료지점에 SET IDENTITY_INSERT " + tableName + " OFF;가 추가됩니다.
※ 테이블의 데이터 중 특수기호가 있어 오류나는 경우

ORACLE
시작점에 SET DEFINE ON;가 추가됩니다.
종료지점에 SET DEFINE OFF;가 추가됩니다.

DBMS Migration Tool 다운로드 : DBMS Migration Tool.zip

2. Linux에서 추출 방법

2.1. DBMS_Migration_Tool.zip 파일을 압축을 해제

  • DBMS_Migration_Tool.zip 파일압축 해제 하여 tar.gz 또는 tar로 만들어도 무관합니다.

2.2. DBMS_Migration_Tool 폴더를 서버에 업로드

2.3. DBMS_Migration_Tool 실행

java -jar /업로드위치/DBMS_Migration_Tool/DBMS_Migration_Tool.jar
java설치 되었으나 바로 실행이 안되는 경우
/JAVA가 설치된경로/bin/java -jar /업로드위치/DBMS_Migration_Tool/DBMS_Migration_Tool.jar
java가 설치가 안된(SCI서버 설치된 상태) 경우
/SCI Server설치경로/jre/bin/java -jar /업로드위치/DBMS_Migration_Tool/DBMS_Migration_Tool.jar

2.4. 원본 DBMS정보 및 대상 DBMS 정보 선택

2.4.1. 원본 DBMS 선택 (1~4번 입력 후 엔터)

원본 DBMS 선택 (1) MS-SQL (2) MARIADB (3) ORACLE (4) CUBRID =>

2.4.2. 원본 DBMS의 IP 입력

IP를 입력해주세요. =>

2.4.3. 원본 DBMS의 PORT 입력

PORT를 입력해주세요. =>

2.4.4. 사용자 정보 입력 (ID, PW)

사용자 ID를 입력해주세요. =>
사용자 패스워드를 입력해주세요. =>

2.4.5. 원본 DB명 입력 (대소문자 구분x)

원본 DB명을 입력해주세요. =>

2.4.6. 대상 DBMS 선택 (1~4번 입력 후 엔터)

대상 DBMS 선택 (1) MS-SQL (2) MARIADB (3) ORACLE (4) CUBRID =>

2.5. 원본 DATA 추출

Data migration scripts for table AddressBook_Info generated successfully. Data migration scripts for table AddressBookTarget_Info generated successfully. Data migration scripts for table AlarmProgram_Info generated successfully. Data migration scripts for table ApproachTargetDutyGroup_Info generated successfully. Data migration scripts for table ApproachTargetGroup_Info generated successfully. Data migration scripts for table ApproachTargetUserGroup_Info generated successfully. Data migration scripts for table BackupSchedule_Info generated successfully. Data migration scripts for table BlockUseProcess_Info generated successfully. Data migration scripts for table BusinessExtension_Info generated successfully. Data migration scripts for table BusinessProgram_Info generated successfully. Data migration scripts for table Category_Info generated successfully. Data migration scripts for table CategoryAuth_Info generated successfully. Data migration scripts for table CategoryGroupAuth_Info generated successfully. Data migration scripts for table CategoryPrintMarkEnv_Info generated successfully. Data migration scripts for table CategoryUserAuth_Info generated successfully. Data migration scripts for table CheckoutUser_Info generated successfully. Data migration scripts for table ClassifierEnv_Info generated successfully. Data migration scripts for table ClientToolAuth_Info generated successfully. Data migration scripts for table ClientToolRunProtocol_Info generated successfully. Data migration scripts for table ClientVersionList_Info generated successfully. Data migration scripts for table ClientVersionPolicy_Info generated successfully. Data migration scripts for table ClientVersionUserAuth_Info generated successfully. Data migration scripts for table ConfigToolAuth_Info generated successfully. Data migration scripts for table ConfigToolProcess_Info generated successfully. Data migration scripts for table ConfigToolProcessAuth_Info generated successfully. Data migration scripts for table ConfigToolTemplate_Info generated successfully. Data migration scripts for table CREATE_PC_ID generated successfully. Data migration scripts for table CrossDBServer_Info generated successfully. Data migration scripts for table CRLinkerLicense_Info generated successfully. Data migration scripts for table CRLinkerTargetAuth_Info generated successfully. Data migration scripts for table CustomPolicy_Info generated successfully. Data migration scripts for table CustomPolicyAuth_Info generated successfully. Data migration scripts for table DBVersion_Info generated successfully. Data migration scripts for table DecryptPolicy_Info generated successfully. Data migration scripts for table DeviceLogPolicy_Info generated successfully. Data migration scripts for table DBvcondata_Info generated successfully. Data migration scripts for table DisconPolicy_Info generated successfully. Data migration scripts for table DIskQuota_Info generated successfully. Data migration scripts for table EventHandlerData_Info generated successfully. Data migration scripts for table EventHandlerDataAuth_Info generated successfully. Data migration scripts for table EventHandlerProcess_Info generated successfully. Data migration scripts for table EXP_AppControl_Info generated successfully. Data migration scripts for table EXP_CategoryAuth_Info generated successfully. Data migration scripts for table EXP_CheckoutDocEnv_Info generated successfully. Data migration scripts for table EXP_EncryptCreate_Info generated successfully. Data migration scripts for table EXP_EncryptCreateAuth_Info generated successfully. Data migration scripts for table EXP_EncryptPolicy_Info generated successfully. Data migration scripts for table EXP_EncryptUserGroupCreateAuth_Info generated successfully. Data migration scripts for table EXP_ForcedAuth_Info generated successfully. Data migration scripts for table EXP_ForcedencryptAuth_Info generated successfully. Data migration scripts for table EXP_LoginPolicy_Info generated successfully. Data migration scripts for table EXP_NetworkRule_Info generated successfully. Data migration scripts for table EXP_Policy_Info generated successfully. Data migration scripts for table EXP_MDdeviceAuth_Info generated successfully. Data migration scripts for table EXP_PrintMarkEnv_Info generated successfully. Data migration scripts for table EXP_Profile_Info generated successfully. Data migration scripts for table EXP_UpgradeServer_Info generated successfully. Data migration scripts for table FileServer_Info generated successfully. Data migration scripts for table FileServerEnv_Info generated successfully. Data migration scripts for table FileServerTargetEnv_Info generated successfully. Data migration scripts for table ForcedgroupAuth_Info generated successfully. Data migration scripts for table ForcedUserAuth_Info generated successfully. Data migration scripts for table GeneralEmkeyLog_Info generated successfully. Data migration scripts for table Group_Info generated successfully. Data migration scripts for table GroupAccessGroup_Info generated successfully. Data migration scripts for table GroupAdControl_Info generated successfully. Data migration scripts for table GroupCheckoutDocEnv_Info generated successfully. Data migration scripts for table GroupDiskQuota_Info generated successfully. Data migration scripts for table GroupEncryptCategory_Info generated successfully. Data migration scripts for table GroupEncryptCreateAuth_Info generated successfully. Data migration scripts for table GroupEncryptPolicy_Info generated successfully. Data migration scripts for table GroupEncryptUserGroupCreateAuth_Info generated successfully. Data migration scripts for table GroupForcedAuth_Info generated successfully. Data migration scripts for table GroupForcedEncryptAuth_Info generated successfully. Data migration scripts for table GroupGroupManagerAuth_Info generated successfully. Data migration scripts for table GroupLoginPolicy_Info generated successfully. Data migration scripts for table GroupManagerAuth_Info generated successfully. Data migration scripts for table GroupNetworkRule_Info generated successfully. Data migration scripts for table GroupPrintMarkEnv_Info generated successfully. Data migration scripts for table GroupProfile_Info generated successfully. Data migration scripts for table GroupUpgradeServer_Info generated successfully. Data migration scripts for table GroupUserAuth_Info generated successfully. Data migration scripts for table InspectionPolicy_Info generated successfully.

2.6. 실패시 에러 log 확인가능 (PORT 틀렸을 경우)

com.microsoft.sqlserver.jdbc.SQLServerException: 호스트 10.11.10.213, 포트 1521에 대한 TCP/IP 연결이 실패했습니다. 오류: "Connection refused: no further information" 연결이 거부되었습니다. 확인하십시오. SQL Server의 인스턴스가 호스트에서 실행되고 있고 호스트에서 TCP/IP 연결을 수락하고 있는지 확인하십시오. 또한 호스트의 TCP 연결을 차단하지 않는지 확인하십시오. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241) at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243) at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1310) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:992) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:828) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229) at com.softcamp.migration.MigrationToolMain.main(MigrationToolMain.java:62) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:62)

2.7. DBMSMigrationTool성공시 jar파일 위치에 "원본DBMS명_to_대상DBMS명" 디렉토리 생성됨.

🗎 DBMSMigrationTool.jar 📁 MSSQL_to_MSSQL

2.8. "원본DBMS명_to_대상DBMS명" 디렉토리 내 SQL파일 생성됨.

AddressBook_Info.sql AddressBookTarget_Info.sql AppProgramList_Info.sql ApproachTargetDutyGroup_Info.sql ApproachTargetGroup_Info.sql ApproachTargetUserGroup_Info.sql BackupSchedule_Info.sql BlockUSBProcess_Info.sql BusinessExtension_Info.sql BusinessProgram_Info.sql Category_Info.sql CategoryClassAuth_Info.sql CategoryGroupAuth_Info.sql CategoryPrintMarkEnv_Info.sql CategoryUserAuth_Info.sql CheckoutUser_Info.sql Classification_Info.sql ClientToolAuth_Info.sql ClientToolRunPeriod_Info.sql CustomPolicy_Info.sql CustomPolicyAuth_Info.sql DBVersion.sql

2.9. 테이터가 5만건 이상인 경우 SQL파일이 분할되어 생성됨.

Classification_Info.sql ClientToolAuth_Info.sql ClientToolRunPeriod_Info.sql CustomPolicy_Info.sql CustomPolicyAuth_Info (1).sql CustomPolicyAuth_Info (2).sql CustomPolicyAuth_Info (3).sql CustomPolicyAuth_Info (4).sql CustomPolicyAuth_Info (5).sql CustomPolicyAuth_Info (6).sql CustomPolicyAuth_Info (7).sql CustomPolicyAuth_Info (8).sql CustomPolicyAuth_Info (9).sql CustomPolicyAuth_Info (10).sql CustomPolicyAuth_Info (11).sql DBVersion.sql
ARIA암호화 알고리즘 사용 고객사 주의 사항

serverprofile_info.sql파일에서 DSHeader_Key 값이 DB의 값과 동일한지 확인

  • DSHeader_Key의 데이터 유형이 BINARY로 추출된 값이 @8b128dfn과 같은 값으로 sql파일에 추출되는 사례 발생
  • sql파일에 DB에서 값을 복사하여 붙여 넣기 한다.

3. Import 방법

HeidiSQL툴 사용

  1. HeidiSQL 실행 → DB 접속 → Target DB 선택

  2. 파일 메뉴 → SQL 파일 실행... → 단일(또는 다중) sql파일 선택 후 열기 → 파일을 직접 실행

COMMAND 단일 파일 실행

  • mysql 실행파일을 통한 실행
  • -u 사용자계정 tftdb 쿼리가 실행되는 db명 -p 실행시에 패스워드 입력받음
mysql -u 계정ID -p tftdb < 추출된.sql파일명

COMMAND 다중 파일 실행

  • TFTDB디렉토리로 들어가서 실행 예
  • -u실행할 계정명 -p실행시 패스워드 입력 받음 -Dsql문을 실행할 DB명
for f in *.sql; do mysql -udrmadmin -p -DTFTDB < "$f"; done
  • DSLOGDB 또는 AMSDB디렉토리에서 실행시에는 -D디비명 변경 필요

3. dbmsMigration.properties 사용 방법

insert 쿼리 추출 시 옵션 설정 기능

기본설정 상태(파일이 존재하지 않는 경우로 동작하도록 셋팅)

#테이블 리스트 포함 여부 (Y/N)
includeTableList=N


#테이블 리스트 정보 (세미콜론으로 구분)
#tableLists=dslog_info;userlog_info;pcdevicelog_info;
tableLists=;

dbmsMigration.properties파일이 존재하지 않는 경우

기본 정의된 테이블들에 대해 마이그레이션 진행

dbmsMigration.properties파일이 존재하는경우

includeTableList = Y : tableLists에 나열되어있는 테이블만 마이그레이션 진행
includeTableList = N : tableLists에 나열되어있는 테이블 제외하고 나머지 전체 테이블에 대해서 마이그레이션 진행
includeTableList 항목이 없거나, Y/N이 아닌 다른값이 있는경우 : 기존과 동일한 전체 마이그레이션 진행